#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
// void PrintBlock()
// {
//     sigset_t s1, s2;
//     sigemptyset(&s1);
//     sigemptyset(&s2);
//     sigprocmask(SIG_BLOCK, &s1, &s2);
//     std::cout << "bolck:";
//     for (int i = 31; i; i--)
//         std::cout << sigismember(&s2, i);
//     std::cout << std::endl;
// }

// void PrintPend()
// {
//     sigset_t s1;
//     sigemptyset(&s1);
//     sigpending(&s1);
//     std::cout << "pend:";
//     for (int i = 31; i; i--)
//         std::cout << sigismember(&s1, i);
//     std::cout << std::endl;
// }
// void handler(int num)
// {
//     PrintPend();
//     sleep(1);
// }
// int main()
// {
//     struct sigaction ne, old;
//     ne.sa_handler = handler;
//     sigaddset(&ne.sa_mask, 4);
//     sigaddset(&ne.sa_mask, 5);
//     sigaction(2, &ne, &old);
//     while (true)
//     {
//         pause();
//     }
// }
int flag=2;
void add(int n){
    flag--;
}
int main(){
     add(10);
    signal(2,add);
    std::cout<<flag<<std::endl;;
    while(flag){
        ;
    }
   
}